home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / POVSRC / SOURCE / ImageWindow.h < prev    next >
Text File  |  1994-02-04  |  5KB  |  163 lines

  1. /*==============================================================================
  2. Project:    POV-Ray
  3.  
  4. Version:    2.2
  5.  
  6. File:    ImageWindow.c
  7.  
  8. Description:
  9.     This file contains the Macintosh Image window routines for POV-Ray.
  10. ------------------------------------------------------------------------------
  11. Authors:
  12.     Jim Nitchals, David Harr, Eduard [esp] Schwan
  13. ------------------------------------------------------------------------------
  14.     from Persistence of Vision Raytracer
  15.     Copyright 1993 Persistence of Vision Team
  16. ------------------------------------------------------------------------------
  17.     NOTICE: This source code file is provided so that users may experiment
  18.     with enhancements to POV-Ray and to port the software to platforms other 
  19.     than those supported by the POV-Ray Team.  There are strict rules under
  20.     which you are permitted to use this file.  The rules are in the file
  21.     named POVLEGAL.DOC which should be distributed with this file. If 
  22.     POVLEGAL.DOC is not available or for more info please contact the POV-Ray
  23.     Team Coordinator by leaving a message in CompuServe's Graphics Developer's
  24.     Forum.  The latest version of POV-Ray may be found there as well.
  25.  
  26.     This program is based on the popular DKB raytracer version 2.12.
  27.     DKBTrace was originally written by David K. Buck.
  28.     DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
  29. ------------------------------------------------------------------------------
  30. More Info:
  31.     This Macintosh version of POV-Ray was created and compiled by Jim Nitchals
  32.     (Think 5.0) and Eduard Schwan (MPW 3.2), based (loosely) on the original
  33.     port by Thomas Okken and David Lichtman, with some help from Glenn Sugden.
  34.  
  35.     For bug reports regarding the Macintosh version, you should contact:
  36.     Eduard [esp] Schwan
  37.         CompuServe: 71513,2161
  38.         Internet: jl.tech@applelink.apple.com
  39.         AppleLink: jl.tech
  40.     Jim Nitchals
  41.         Compuserve: 73117,3020
  42.         America Online: JIMN8
  43.         Internet: jimn8@aol.com -or- jimn8@applelink.apple.com
  44.         AppleLink: JIMN8
  45. ------------------------------------------------------------------------------
  46. Change History:
  47.     930610    [esp]    Created
  48.     931001    [esp]    version 2.0 finished (Released on 10/4/93)
  49. ==============================================================================*/
  50.  
  51. #if !defined(IMAGEWINDOW_H)
  52. #define IMAGEWINDOW_H
  53.  
  54.  
  55. /*==== POV-Ray std headers ====*/
  56. #include "PovMac.h"
  57.  
  58. #include "TextEditor.h"        // gSrcWind_...
  59. #include "povproto.h"
  60.  
  61.  
  62. /*==== Standard C headers ====*/
  63. #include <stdlib.h>
  64. #include <setjmp.h>
  65.  
  66. /*==== Macintosh-specific headers ====*/
  67. // NOTE: _H_MacHeaders_ is defined by Think C if it is using
  68. // precompiled headers.  This is only for compilation speed improvement.
  69. #if !defined(_H_MacHeaders_)
  70. #include <Types.h>
  71. #include <Controls.h>
  72. #include <Desk.h>
  73. #include <Dialogs.h>
  74. #include <Files.h>
  75. #include <Memory.h>
  76. #include <pictutil.h>
  77. #include <QuickDraw.h>
  78. #include <Resources.h>
  79. #include <Windows.h>
  80. #include <scrap.h>
  81. #include <Folders.h>
  82. #include <errors.h>            /* dupFNErr, etc */
  83. #include <fonts.h>
  84. #include <string.h>            /* strcpy/cat */
  85. #include <toolutils.h>        /* BitTst, etc */
  86. #endif // _H_MacHeaders_
  87.  
  88. #if defined (applec)
  89. #include <strings.h>        /* p2cstr */
  90. #endif // applec
  91.  
  92.  
  93. /*==== POV Mac Library routines =====*/
  94. #include "POVLib.h"
  95.  
  96.  
  97. /*==== Compress PICT routines ====*/
  98. #include "SaveCmpPict.h"
  99.  
  100.  
  101. /*==== definitions ====*/
  102. #define    kNoAnimSuffix    -1    // for saveOutputFile()
  103.  
  104. #define SWAP_SIZE 2L*65536L    // virtual buffer swap segment size
  105.  
  106.  
  107. /*==== globals ====*/
  108. extern WindowPtr        gImageWindowPtr;        // the image window
  109. extern Boolean            gImageWindIsValid;        // true if valid stuff in window
  110. // set image window title name to that of source window, with
  111. // .POV suffix replaced by .PICT.  Also follow the users
  112. // Save As... file name changes... in version 2.x!
  113. // extern Str63            gImageWindName;            // image window's name
  114. extern Boolean            use_custom_palette;        // does the user desire to use color q?
  115. extern int                gColorQuantMethod;        // what kind of color quantization?
  116. extern Boolean            gDoingVirtualFile;        // true if doing virtual image buffering
  117.  
  118.  
  119. /*==== prototypes ====*/
  120. void    InitImageWindow(void);
  121. void    KillImageWindow(void);
  122. void    SetupPalettes(void);
  123. void    SetupOffscreen(void);
  124. void    KillOffscreen(void);
  125. void    CloseImageWindow(void);
  126. void    InvalRect_ImageWindow(Boolean DoWholeWindow);
  127. void    DoResizeImageWindow(WindowPtr w, short h, short v);
  128. void    DoGrowImageWindow(WindowPtr w, Point p);
  129. void    SetImageWindowMag(short magMenuItem);
  130. void    UpdateImageWindow(void);
  131.  
  132. void    make_undo(void);
  133. void    undo_image(void);
  134.  
  135. void    revert_image(void);
  136. void    darken_image(void);
  137. void    lighten_image(void);
  138. void    invert_image(void);
  139. void    reduce_contrast(void);
  140. void    increase_contrast(void);
  141. void    draw_border(void);
  142.  
  143. void    open_virtual(void);
  144. void    delete_virtual(void);
  145. void    dispose_virtual(void);
  146. void    swap_virtual_segment(short y);
  147.  
  148. void    display_init(int width, int height);
  149. void    display_plot(int x, int y, unsigned char Red, unsigned char Green, unsigned char Blue);
  150. void    display_finished(void);
  151. void    display_close(void);
  152.  
  153. void    SetCustomPalette(Boolean doScreenUpdate);
  154. void    DrawImageWindow(Boolean DoWholeWindow);
  155. void    paint_to_picture(short do_disk_buffer);
  156.  
  157. void    SaveOutputFile(Boolean getName, int animSuffix, ComponentInstance ci);
  158.  
  159.  
  160. #endif // IMAGEWINDOW_H
  161.  
  162.  
  163.